// 导入User模型
const User = require('../models/User')

class UserController {
  // 注册用户
  async register(req, res) {
    const userObj = new User(req.body)
    const userInfo = await userObj.save()
    // 调用 res.send() 方法，向客户端响应结果
    res.send({
      status: 201,
      msg: '注册成功！',
      data: userInfo
    })
  }

  // 查询所有用户
  async findUsers(req, res) {
    // 拿到查询的数据（不传page_num和page_size则默认查询全部）
    const query = req.query
    // 计算 skip 值
    let skip = (parseInt(query.page_num) - 1) * parseInt(query.page_size)
    // 使用分页查询方法
    const users = await User.find().skip(skip).limit(query.page_size)
    res.send({
      status: 201,
      msg: '查询成功！',
      data: users
    })
  }

  // 根据 id 查询用户
  async findUserById(req, res) {
    const { _id } = req.params
    const user = await User.findById(_id)
    res.send({
      status: 201,
      msg: '查询成功！',
      data: user
    })
  }

  // 修改用户
  async updateUser(req, res) {
    const userInfo = req.body
    // 根据id，更新用户数据
    const result = await User.updateOne({_id:userInfo._id}, userInfo)
    console.log(result)
    res.send({ status: 201, msg: '更新成功！' })
  }

  // 删除用户
  async deleteUser(req, res) {
    const { _id } = req.params
    const result = await User.deleteOne({ _id })
    console.log(result)
    res.send({ status: 201, msg: '删除成功！' })
  }
}

module.exports = new UserController()